<?php
class AcosController extends AppController {

	var $name = 'Acos';
        var $appModule = 'Seguridad';

        var $uses = array('Aco');
        var $components = array('Acl');
        var $helpers = array('Html', 'Form', 'Javascript');
        
	function index() {
            $this->Aco->recursive = -1;
            $acos = $this->Aco->find('all', array(
                'order'=>array('Aco.lft'),
                'contain'=>array(
                    'Aro'
                )
            ));
            $this->set('acos', $acos);
        }

	function add() {
		if (!empty($this->data)) {
                        $aco =& $this->Acl->Aco;
                        if ($this->data['Aco']['parent_id'] == 'null'){
                                $this->data['Aco']['parent_id'] = null;
                                $this->data['Aco']['alias'] = up($this->data['Aco']['alias']);
                        }
                        $aco->create($this->data);

			if ($aco->save()) {
				$this->Session->setFlash(__('El Aco ha sido guardado', true));
				$this->redirect(array('action'=>'add'));
			} else {
				$this->Session->setFlash(__('El Aco no ha podido se guardado. Intente nuevamente..', true));
			}
		}
		$this->set('parents',$this->Aco->find('list',array(
			'fields'=>array('Aco.id','Aco.alias'),
			'order'=>array('Aco.lft', 'Aco.rght'))));

	}

	function edit($id = null) {
                if (empty($id)) {
                        $this->Session->setFlash(__('El Id del Aco no es valido.', true));
                        $this->redirect(array('action'=>'index'));
                }
		if (!empty($this->data)) {
                        $aco =& $this->Acl->Aco;
                        if ($this->data['Aco']['parent_id'] == 'null'){
                                $this->data['Aco']['parent_id'] = null;
                                $this->data['Aco']['alias'] = up($this->data['Aco']['alias']);
                        } 
			if ($aco->save($this->data)) {
				$this->Session->setFlash(__('El Aco ha sido guardado', true));
				$this->redirect(array('action'=>'add'));
			} else {
				$this->Session->setFlash(__('El Aco no ha podido se guardado. Intente nuevamente..', true));
			}
		}
                else{
                        $this->data = $this->Aco->read(null, $id);
                }
                $this->set('parents',$this->Aco->find('list',array(
                    'fields'=>array('Aco.id','Aco.alias'),
                    'order'=>array('Aco.lft', 'Aco.rght'))));

	}

	function delete($id = null, $verbose = true) {
                if (empty($id)) {
                    if ($verbose){
                        $this->Session->setFlash(__('El Id del Aco no es valido.', true));
                        $this->redirect(array('action'=>'index'));
                    } else return false;
                }
                $aco =& $this->Acl->Aco;
                if (!$aco->del(array('id'=>$id))){
                    if ($verbose){
                        $this->Session->setFlash(__('Error eliminando el Aco #'.$id, true));
                        $this->redirect(array('action'=>'index'));
                    } else return false;
                } else return true;

	}

        function process(){
                $op = isset($this->params['form']['delete'])?'eliminar':'anular';
                $flag = true;
                $i = 0;
                foreach($this->data as $item){
                    if ($item['id']!='0'){
                        if(isset($this->params['form']['delete'])){ // eliminar
                            $flag = $this->delete($item['id'], false);
                        }
                        if (!$flag){
                            $this->Session->setFlash(__("Se ha producido un error al $op el Aco #".$item['id'], true));
                            break;
                        }
                    }
                    $i++;
                }
                if ($flag && $i > 0){
                    $this->Session->setFlash(__("El proceso de $op Clientes se ha realizado con exito.", true));
                }
                $this->redirect(array('action'=>'index'));
        }
}
?>
